package com.zjsru.oneDay202204;

/**
 * @Author: likew
 * @Date: 2022/4/28
 * 按奇偶排序数组
 * 给你一个整数数组 nums，将 nums 中的的所有偶数元素移动到数组的前面，后跟所有奇数元素。
 *
 * 输入：nums = [3,1,2,4]
 * 输出：[2,4,3,1]
 * 解释：[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。
 */
public class sortArrayByParity {
//
//    public int[] sortArrayByParity(int[] nums) {
//        int len = nums.length, high = 0;
//        int[] res = new int[len];
//        for (int i = 0; i < nums.length; i++) {
//            /**
//             * 判断奇偶
//             * */
//            if(!isEven(nums[i])){
//                res[len - 1] = nums[i];
//                len--;
//            }else{
//                res[high] = nums[i];
//                high++;
//            }
//        }
//        return res;
//    }
//
//    private boolean isEven(int i) {
//        int n = i%2;
//        if(n == 0){
//            return true;
//        }else{
//            return false;
//        }
//    }
    /**
     * 第2种解法
     * */
    public int[] sortArrayByParity(int[] nums) {
        int n = nums.length;
        for (int i = 0,j = n - 1; i < j; i++) {
            if(nums[i] % 2 == 1){
                int c = nums[j];
                nums[j--] = nums[i];
                nums[i--] = c;
            }
        }
        return nums;
    }
    
    public static void main(String[] args) {
        sortArrayByParity sortArrayByParity = new sortArrayByParity();
        int[] nums = new int[]{1,3,5,0};
        System.out.println(sortArrayByParity.sortArrayByParity(nums));
    }
}
